package br.com.exoticacalcados.dao;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import br.com.exoticacalcados.entidades.HibernateUtil;
import br.com.exoticacalcados.entidades.PessoaFisica;

import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;



public class PessoaFisicaDao implements Serializable {
	private Session session;
	private Transaction trans;
	private PessoaFisica pessoaFisica;
	private List<PessoaFisica> listaPessoaFisica = new ArrayList<PessoaFisica>();

	public void adicionarPessoaFisica(PessoaFisica pessoa) {
		
		try {
			session = HibernateUtil.getSessionFactory().openSession();
			trans = session.beginTransaction();
			session.save(pessoa);
			trans.commit();

		} catch (HibernateException e) {
			trans.rollback();
			e.printStackTrace();
		} finally {

			session.close();
		}
		
	
	}

	public List<PessoaFisica> getListaPessoaFisica() {
		
		try {
			session = HibernateUtil.getSessionFactory().openSession();
			trans = session.beginTransaction();

			Criteria cri = session.createCriteria(PessoaFisica.class);
			this.listaPessoaFisica = cri.list();
		} catch (HibernateException e) {
			trans.rollback();
			e.printStackTrace();
		} finally {
			session.close();
		}
			
		return listaPessoaFisica;
	}

	public void removerPessoaFisica(PessoaFisica pessoa) {
		
		try {
			session = HibernateUtil.getSessionFactory().openSession();
			trans = session.beginTransaction();

			pessoaFisica = new PessoaFisica();
			pessoaFisica = pessoa;

			session.delete(pessoaFisica);
			trans.commit();
		} catch (HibernateException e) {
			trans.rollback();
			e.printStackTrace();
		} finally {
			session.close();
		}
	
	}
	public void atualizarPessoaFIsica(PessoaFisica pessoa) {
		
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            trans = session.beginTransaction();
            session.update(pessoa);
            trans.commit();
        } catch (HibernateException e) {
        	trans.rollback();
        	e.printStackTrace();
        } finally {
            session.close();
        }
	
    }

}
